package com.dcrzl.shcz.module.sys.controller;

import com.dcrzl.shcz.common.entity.sys.SysRoleMenu;
import com.dcrzl.shcz.common.utils.PageInfo;
import com.dcrzl.shcz.common.utils.Result;
import com.dcrzl.shcz.common.utils.SysConstant;
import com.dcrzl.shcz.module.sys.service.SysRoleMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * 角色与菜单对应关系
 *
 * @author dcrzl
 * @email 1728795786@qq.com
 * @date 2022-05-09 10:49:26
 */
@RestController
@RequestMapping("/sys/role/menu")
public class SysRoleMenuController {
    @Autowired
    private SysRoleMenuService sysRoleMenuService;

    /**
     * 列表
     */
    @GetMapping("/list")
    public Result list(SysRoleMenu sysRoleMenu){
       return sysRoleMenuService.selectList(sysRoleMenu);
    }

    /**
    * 列表分页
    */
    @GetMapping("/page")
    public PageInfo<SysRoleMenu> page(SysRoleMenu sysRoleMenu){
        return sysRoleMenuService.selectPage(sysRoleMenu);
    }

    /**
     * 信息
     */
    @GetMapping("/info")
    public Result info(SysRoleMenu sysRoleMenu){
		return sysRoleMenuService.selectOne(sysRoleMenu);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public Result save(@RequestBody SysRoleMenu sysRoleMenu){
		return sysRoleMenuService.insert(sysRoleMenu);
    }

    /**
     * 修改
     */
    @PutMapping("/update")
    public Result update(@RequestBody SysRoleMenu sysRoleMenu){
		return sysRoleMenuService.updateById(sysRoleMenu);
    }

    /**
     * 删除
     */
    @DeleteMapping("/delete")
    public Result delete(@RequestBody Long[] ids){
        //删除
        List<Long> list = new ArrayList<>();
        for (Long sysRoleMenuId : ids) {
            Result Result = sysRoleMenuService.deleteById(sysRoleMenuId);
            if (!Result.isSuccess()){
                list.add(sysRoleMenuId);
            }
        }
        if (list.isEmpty()){
            return new Result().setSuccess(true);
        }else{
            return new Result().setSuccess(false).setData(list).setMsg("删除失败").setCode(SysConstant.DELETE_FAIL_CODE_RES);
        }
    }

}
